iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
0
自我挑戰組

每天一份前端小作品系列 第 9

【Day9】用jQuery做國旗問答題

  • 分享至 

  • xImage
  •  

本日小作品:
https://codepen.io/linchinhsuan/pen/JjXeRPL

練習重點摘要:

$(this).toggleClass("active");

當點擊任何一張國旗圖片的時候為其動態加上active這個class。然後css裡面有寫.flags img.active{background-color: #D1D0D7;},所以被點到的國旗背景就會變色。

$(this).siblings().removeClass("active");

因為是單選題,所以我們這裡把除了被點到的國旗(this)之外的img都移除active這個class。$(this)是被綁定的此物件,.siblings()則是除了前者之外同層的其他物件。

$(".ans p").toggleClass("answer");
當點到正確的國旗的時候,動態為p元素加上一個叫做answer的class。
$(".ans p").removeClass("answer");
這裡是當點到錯誤的答案,也就是選錯的時候,把p元素的answer這個class拿掉。

透過以上兩者,當答對的時候p上面會有answer這個class,反之則無。

$(".ans p").addClass("show");

送出答案的時候為p元素動態加上show這個class。

$(".ans p.show").text("答錯");
$(".ans p.answer.show").text("正確");

這裡用了.text()的語法,是將內容寫入選擇節點的語法。當選到正確答案的時候,$(".ans p.answer.show").text("正確");就會被觸發,覆蓋掉前者。反之,則會前者$(".ans p.show").text("答錯");則會奏效。最終就可以依照情況顯示答案正確或是錯誤了。

---

備註:
本小作品使用了Pure.css的按鈕
圖片版權來自
Icons made by Freepik from www.flaticon.com

---

本日結語:
今天是九天,用jQuery控制class來寫判斷意外地困難,會有想用if判斷的衝動XD


上一篇
【Day8】用jQuery開張商店
下一篇
【Day10】用jQuery做back to top
系列文
每天一份前端小作品30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言